package queens.taglib.html;

import javax.servlet.jsp.JspException;

import org.apache.struts.Globals;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.util.RequestUtils;

/**
 * Etiqueta para crear un input select que se marca de color rojo si 
 * tiene errores de validación
 */
@SuppressWarnings("serial")
public class SelectTag extends org.apache.struts.taglib.html.SelectTag {

	/* (no Javadoc)
	 * @see org.apache.struts.taglib.html.SelectTag#doStartTag()
	 */
	public int doStartTag() throws JspException {

		ActionErrors errors = RequestUtils.getActionErrors(pageContext,Globals.ERROR_KEY);
		
		if(errors!=null){// si hay errores
			// si la propiedad tiene error
			String propiedad = this.getProperty();
			
			StringBuffer sb = new StringBuffer();
			
			if(propiedadConError(errors, propiedad)){
				sb.append("background-color: rgb(239, 194, 194);");
			}else{
				sb.append("");
			}
			this.setStyle(sb.toString());
			
		}
		return super.doStartTag();
	}
	
	private boolean propiedadConError(ActionErrors errors, String propiedad){
		return errors.get(propiedad).hasNext();
	}
}